package test;
import utils.crud_lianbiao;
import utils.crud_lianbiao;

import java.util.List;

/*
      题目
21. 合并两个有序链表
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

      数据
 输入：1->2->4, 1->3->4
输出：1->1->2->3->4->4


//递归算法
  public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
        if (l1 == null) {
            return l2;
        } else if (l2 == null) {
            return l1;
        } else if (l1.val < l2.val) {
            l1.next = mergeTwoLists(l1.next, l2);
            return l1;
        } else {
            l2.next = mergeTwoLists(l1, l2.next);
            return l2;
        }

    }
}
//迭代算法
public ListNode mergeTwoLists(ListNode l1,ListNode l2){
        ListNode head;    //创建一个头结点
        if(l1==null) return l2;
        if(l2==null) return l1;
        if(l1.val<=l2.val){   //初始化head
            head=l1;
            l1=l1.next;
        }else {
            head=l2;
            l2=l2.next;
        }
        ListNode curr=head;
        while (l1!=null&&l2!=null){
            if(l1.val<=l2.val){
                curr.next=l1;
                curr=curr.next;  //将指针跳转到下一个位置,不能改变头指针head，因为那是记录头指针的
                l1=l1.next;
            }else {
                curr.next=l2;
                curr=curr.next;
                l2=l2.next;
            }
        }
        if(l1==null&&l2!=null)
            curr.next=l2;
        if(l2==null&&l1!=null)
            curr.next=l1;
        return head;
    }
 */
public class letcode21_hebinglianbiao {
    public static void main(String[] args) {
        int a[]=new int[3];
        int b[]=new int[3];
        for(int i=0;i<3;i++)
            a[i]=i*3;
        for(int i=0;i<3;i++)
            b[i]=i*2;

        crud_lianbiao c=new crud_lianbiao();
        crud_lianbiao.ListNode listNode=c.initLists(a);
       // crud_lianbiao.ListNode listNode1=c.initLists(b);
        //crud_lianbiao.ListNode listNode2=c.mergeTwoLists(listNode1,listNode);
         c.visit(listNode);
        //  crud_lianbiao.ListNode listNode3=c.deleteListNode(listNode,0);
         //c.visit(listNode3);
        crud_lianbiao.ListNode list=c.addList(listNode,4);
        c.visit(list);

    }

}
